using System;
using System.Collections;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;
using System.Data.SqlClient;
using Nextel.Utils;
using J2ME.RMS;
using Java.binario.bean;


namespace Java.db
{
    public class DBJava : DALBase
    {

        #region SINCRONIZACION 
        public static List<RutaBean> listarRuta(String codUsuario, String fechaMovil)
        {
            List<RutaBean> datos = new List<RutaBean>();

            using (SqlConnection conn = new SqlConnection(prCadConexion))
            {
                using (SqlCommand cmd = new SqlCommand("USPJ_RUTA", conn))
                {
                    conn.Open();
                    cmd.CommandTimeout = 0;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@CODIGOUSUARIO", fnVerNuloStr(codUsuario)));
                    cmd.Parameters.Add(new SqlParameter("@FECHAMOVIL", getStringFechaYYMMDDHHMM(fechaMovil)));
                    cmd.Parameters.Add(new SqlParameter("@FLAG", fnVerNuloStr(AbstractBean.ACTIVO)));


                    using (SqlDataReader loDr = cmd.ExecuteReader())
                    {
                        RutaBean rutaBean = new RutaBean();
                        while (loDr.Read())
                        {
                            if (rutaBean.codigoActividad != loDr.GetValue(loDr.GetOrdinal("CODIGO")).ToString().Trim().ToUpper())
                            {
                                rutaBean = new RutaBean();
                                rutaBean.codigoActividad = loDr.GetValue(loDr.GetOrdinal("CODIGO")).ToString().Trim().ToUpper();
                                rutaBean.nombre = loDr.GetValue(loDr.GetOrdinal("NOMBRE")).ToString().Trim().ToUpper();
                                rutaBean.orden = fnInt64(loDr.GetValue(loDr.GetOrdinal("ORDENACTIVIDAD")).ToString().Trim());                              
                                rutaBean.descripcion = loDr.GetValue(loDr.GetOrdinal("DESCRIPCION")).ToString().Trim().ToUpper();
                                rutaBean.direccion = loDr.GetValue(loDr.GetOrdinal("DIRECCION")).ToString().Trim().ToUpper();
                                rutaBean.ultimoEstado = loDr.GetValue(loDr.GetOrdinal("ULTIMOESTADO")).ToString().Trim().ToUpper();
                                rutaBean.finalizado = loDr.GetValue(loDr.GetOrdinal("FINALIZADO")).ToString().Trim().ToUpper();
                                datos.Add(rutaBean);
                            }

                            EstadoJavaBean estado = new EstadoJavaBean();

                            estado.codigo = loDr.GetValue(loDr.GetOrdinal("CODIGOESTADO")).ToString().Trim().ToUpper();

                            estado.nombre = loDr.GetValue(loDr.GetOrdinal("NOMBREESTADO")).ToString().Trim().ToUpper();
                            estado.flagListaEntrega = fnChar(loDr.GetValue(loDr.GetOrdinal("FLAGLISTA")).ToString().Trim());
                            estado.flagFoto = fnChar(loDr.GetValue(loDr.GetOrdinal("FLAGFOTO")).ToString().Trim());
                            estado.flagInput = fnChar(loDr.GetValue(loDr.GetOrdinal("FLAGTEXTO")).ToString().Trim());
                            estado.etiquetaTexto = loDr.GetValue(loDr.GetOrdinal("ETIQUETA")).ToString().Trim().ToUpper();
                            estado.orden = fnInt(loDr.GetValue(loDr.GetOrdinal("ORDEN")).ToString().Trim());

                            rutaBean.lstEstados.Add(estado);

                        }

                    }
                }
            }

            return datos;
        }

       
        public static List<GeneralBean> listarGenerales()
        {

            List<GeneralBean> datos = new List<GeneralBean>();

            using (SqlConnection conn = new SqlConnection(prCadConexion))
            {
                using (SqlCommand cmd = new SqlCommand("USPJ_GRUPO", conn))
                {
                    conn.Open();
                    cmd.CommandTimeout = 0;
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.Parameters.Add(new SqlParameter("@FLAG", fnVerNuloStr(AbstractBean.ACTIVO)));


                    using (SqlDataReader loDr = cmd.ExecuteReader())
                    {
                        while (loDr.Read())
                        {
                            GeneralBean bean = new GeneralBean();
                            bean.grupo = loDr.GetValue(loDr.GetOrdinal("GRUPO")).ToString().Trim().ToUpper();
                            bean.codigo = loDr.GetValue(loDr.GetOrdinal("CODIGO")).ToString().Trim().ToUpper();
                            bean.descripcion = loDr.GetValue(loDr.GetOrdinal("NOMBRE")).ToString().Trim().ToUpper();
                            bean.valor = loDr.GetValue(loDr.GetOrdinal("VALOR")).ToString().Trim().ToUpper();
                            datos.Add(bean);
                        }

                    }
                }
            }

            return datos;
        }

        #endregion

        //#region PEDIDOS



        public static void registrarServicio(ActividadReporteBean bean)
        {
            using (SqlConnection conn = new SqlConnection(prCadConexion))
            {
                using (SqlCommand cmd = new SqlCommand("USPJ_REGISTRAR_TRANSACCION", conn))
                {
                    conn.Open();
                    cmd.CommandTimeout = 0;
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add(new SqlParameter("@CODIGOACTIVIDAD", fnVerNuloStr(bean.codigoactividad)));
                    cmd.Parameters.Add(new SqlParameter("@CODIGOESTADO", fnVerNuloStr(bean.codigoestado)));
                    cmd.Parameters.Add(new SqlParameter("@FECHAMOVILINICIO", bean.fechainicio));
                    cmd.Parameters.Add(new SqlParameter("@FECHAMOVILFIN", bean.fechafin));
                    cmd.Parameters.Add(new SqlParameter("@LATITUD", fnVerNuloStr(bean.gpdlatitud)));
                    cmd.Parameters.Add(new SqlParameter("@LONGITUD", fnVerNuloStr(bean.gpdlongitud)));
                    cmd.Parameters.Add(new SqlParameter("@OBSERVACION", fnVerNuloStr(bean.observacion)));
                    cmd.Parameters.Add(new SqlParameter("@CODIGOENTREGA", fnVerNuloStr(bean.codigoentrega)));
                    cmd.Parameters.Add(new SqlParameter("@CODIGOUSUARIO", fnVerNuloStr(bean.codigousuario)));
                    cmd.Parameters.Add(new SqlParameter("@CODIGONOVISITA", fnVerNuloStr(bean.codigonovisita)));
                    cmd.Parameters.Add(new SqlParameter("@CELDA", fnVerNuloStr(bean.celda)));
                    cmd.Parameters.Add(new SqlParameter("@VELOCIDAD", fnVerNuloStr(bean.velocidad)));
                    cmd.Parameters.Add(new SqlParameter("@GPSEXACTITUD", fnVerNuloStr(bean.exactitud)));
                    cmd.Parameters.Add(new SqlParameter("@CANTIDADESTADOS", fnVerNuloInt(bean.cantidadestado)));
                    cmd.Parameters.Add(new SqlParameter("@CANTIDADESTADOSATENDIDOS", fnVerNuloInt(bean.cantidadestadorealizado)));
                    cmd.Parameters.Add(new SqlParameter("@DURACION", fnVerNuloStr(bean.duracion)));
                    cmd.Parameters.Add(new SqlParameter("@CANTIDADACTIVIDAD", fnVerNuloInt(bean.cantidadactividad)));
                    cmd.Parameters.Add(new SqlParameter("@ERRORCONEXION", fnVerNuloInt(bean.errorConexion)));
                    cmd.Parameters.Add(new SqlParameter("@ERRORPOSICION", fnVerNuloInt(bean.errorPosicion)));
                    cmd.Parameters.Add(new SqlParameter("@BATERIA", fnVerNuloInt(bean.bateria)));
                    cmd.Parameters.Add(new SqlParameter("@SENAL", fnVerNuloInt(bean.senal)));
                    cmd.Parameters.Add(new SqlParameter("@TELEFONO", fnVerNuloStr(bean.telefono)));
                    cmd.Parameters.Add(new SqlParameter("@IP", fnVerNuloStr(bean.ip)));
                    cmd.Parameters.Add(new SqlParameter("@MODELO", fnVerNuloStr(bean.modelo)));


                    cmd.ExecuteNonQuery();

                }
            }
        }


        public static void registrarFotoBD(FotoDato bean)
        {
            using (SqlConnection conn = new SqlConnection(prCadConexion))
            {
                using (SqlCommand cmd = new SqlCommand("USPJ_REGISTRA_FOTO", conn))
                {
                    conn.Open();
                    cmd.CommandTimeout = 0;
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add(new SqlParameter("@CODIGOUSUARIO", fnVerNuloStr(bean.codigousuario)));
                    cmd.Parameters.Add(new SqlParameter("@CODIGOACTIVIDAD", fnVerNuloStr(bean.codigoActividad)));
                    cmd.Parameters.Add(new SqlParameter("@NEXTEL", bean.nextel));
                    cmd.Parameters.Add(new SqlParameter("@FECHA", bean.FechaFoto));
                    cmd.Parameters.Add(new SqlParameter("@FOTO", bean.Foto));

                    cmd.ExecuteNonQuery();

                }
            }

        }

        public static void actualizaUsuarioCantidadActividad(String codigousuario, Int64 numeroActividad)
        {
            using (SqlConnection conn = new SqlConnection(prCadConexion))
            {
                using (SqlCommand cmd = new SqlCommand("USPJ_USUARIO_ACTUALIZARACTIVIDAD", conn))
                {
                    conn.Open();
                    cmd.CommandTimeout = 0;
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.Add(new SqlParameter("@CODIGOUSUARIO", fnVerNuloStr(codigousuario)));
                    cmd.Parameters.Add(new SqlParameter("@NUMEROACTIVIDAD", numeroActividad));
                    
                    cmd.ExecuteNonQuery();

                }
            }

        } 
    }


}
